home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / OpenDoc 1.2b2c1 / OpenDoc / Interfaces / CPlusPlus / ODObject.xh < prev    next >
Encoding:
Text File  |  1997-02-13  |  9.2 KB  |  424 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: ODObject.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxh.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_M_ODObject_xh
  18. #define SOM_M_ODObject_xh
  19.  
  20. class M_ODObject;
  21.  
  22. #define M_ODObject_MajorVersion 0
  23. #define M_ODObject_MinorVersion 0
  24.  
  25. /* C++ SOM defs */
  26. #include <somcls.xh>
  27. #include <somcm.xh>
  28.  
  29. /* C++ parent defs */
  30. #ifndef SOM_SOMClass_xh
  31. #include <somcls.xh>
  32. #endif
  33.  
  34. #ifndef M_ODObject_API
  35. #define M_ODObject_API
  36. /*
  37.  * -- The Class API
  38.  */
  39.  
  40. /*
  41.  * Start of user-defined types:
  42.  */
  43. class SOMClass;
  44. class SOMObject;
  45. class ODFrame;
  46. class ODFacet;
  47. class ODObject;
  48. class ODExtension;
  49.  
  50. /*
  51.  * End of user-defined types.
  52.  */
  53.  
  54. /*
  55.  * -- M_ODObject is a metaclass for ODObject. Make sure ODObject is known.
  56.  */
  57. class ODObject;
  58.  
  59.  
  60. #ifdef OLDIBMSOMAPISUPPORT
  61. #define M_ODObjectCClassData M_ODObjectClassData
  62. #define M_ODObjectNewClass(major,minor) somNewVersionedClassReference(M_ODObject,major,minor)
  63. #endif
  64.  
  65. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  66. #define M_ODObjectMetaClass SOMClass
  67.  
  68. #if PRAGMA_ALIGN_SUPPORTED
  69. #  pragma options align=power
  70. #endif
  71.  
  72. /* The API to the M_ODObject class object, and the methods it introduces. */
  73. SOMEXTERN struct M_ODObjectClassDataStructure {
  74. #ifdef OLDIBMSOMAPISUPPORT
  75.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  76. #else
  77.     long zero;
  78. #endif
  79.     somStaticClassInfo *sci;
  80.     somDToken        instanceDataToken;
  81.     long reserved [3];
  82. } SOMDLINK M_ODObjectClassData;
  83.  
  84. #if PRAGMA_ALIGN_SUPPORTED
  85. #  pragma options align=reset
  86. #endif
  87.  
  88. #if !defined(ODObject_Class_Source) && !defined(M_ODObject_Class_Source) && !defined(SOM_Module_odobject_Source)
  89. #if PRAGMA_IMPORT_SUPPORTED
  90. #pragma import list M_ODObjectClassData
  91. #endif
  92. #endif
  93.  
  94.  
  95. /*
  96.  * -- Typedefs and inline method declarations for left path inherited methods
  97.  * -- are omitted because this compilation had -museinheritedmethods in effect
  98.  */
  99.  
  100.  
  101. /*
  102.  * -- Typedefs for M_ODObject Method Procedures
  103.  */
  104. SOMEXTERN {
  105.  
  106. typedef ODObject*   (* SOMLINK somTD_M_ODObject_somNew)(M_ODObject *somSelf);
  107. }
  108.  
  109. #endif /* M_ODObject_API */
  110.  
  111.  
  112. /*
  113.  * -- This emitter treats Method Tokens as Thunks by default.
  114.  * -- Use the sc modifier "nothunks" to change this default
  115.  */
  116. #undef somresolve_
  117. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  118.  
  119. /*
  120.  * -- The C++ Wrapper Class for M_ODObject
  121.  */
  122. class M_ODObject : public SOMClass
  123. {
  124. public:
  125.  
  126. // M_ODObject::new registers use of the class object, and then uses somNew
  127. // to allocate memory and load the object method table pointer. 
  128. void *operator new(size_t size)
  129. {
  130.     SOM_IgnoreWarning(size);
  131.     // Allocate memory using the default allocator for M_ODObject, and
  132.     // clear mem & set method table pointer, call basic initialization
  133. #ifdef SOMCHKNULL
  134.     void * __somResult = (void *)
  135.       somNewObject(M_ODObject);
  136.     SOMCHKNULL(__somResult);
  137.     return __somResult;
  138. #else
  139.     return (void*) somNewObject(M_ODObject);
  140. #endif
  141. }
  142.  
  143. // M_ODObject::delete uses the default deallocator for the object's class.
  144. void operator delete(void * obj)
  145. {
  146.     if (obj) {
  147.         SOM_Resolve(obj,SOMObject,somFree)
  148.            ( (SOMObject*) obj );
  149.     }
  150. }
  151.  
  152.  
  153. /* method: somNew */
  154. ODObject*  somNew()
  155. {
  156.    return SOM_ResolveD(this,M_ODObject,SOMClass,somNew)
  157.     (this);
  158. }
  159.  
  160. };   /* M_ODObject */
  161.  
  162.  
  163.  
  164. #endif       /* SOM_M_ODObject_xh */
  165.  
  166. #ifndef SOM_ODObject_xh
  167. #define SOM_ODObject_xh
  168.  
  169. class ODObject;
  170.  
  171. #define ODObject_MajorVersion 1
  172. #define ODObject_MinorVersion 0
  173.  
  174. /*
  175.  * Passthru lines: File: "C.xh", "before"
  176.  */
  177.  
  178. #include <ODTypes.h>
  179.  
  180.  
  181.  
  182. /* C++ SOM defs */
  183. #include <somcls.xh>
  184. #include <somcm.xh>
  185.  
  186. /* C++ parent defs */
  187. #ifndef SOM_SOMObject_xh
  188. #include <somobj.xh>
  189. #endif
  190.  
  191. #ifndef ODObject_API
  192. #define ODObject_API
  193. /*
  194.  * -- The Class API
  195.  */
  196.  
  197. /*
  198.  * Start of user-defined types:
  199.  */
  200.  
  201. /*
  202.  * End of user-defined types.
  203.  */
  204.  
  205. #ifdef OLDIBMSOMAPISUPPORT
  206. #define ODObjectCClassData ODObjectClassData
  207. #define ODObjectNewClass(major,minor) somNewVersionedClassReference(ODObject,major,minor)
  208. #endif
  209.  
  210. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  211. #define ODObjectMetaClass M_ODObject
  212.  
  213. #if PRAGMA_ALIGN_SUPPORTED
  214. #  pragma options align=power
  215. #endif
  216.  
  217. /* The API to the ODObject class object, and the methods it introduces. */
  218. SOMEXTERN struct ODObjectClassDataStructure {
  219. #ifdef OLDIBMSOMAPISUPPORT
  220.     M_ODObject            *classObject;    /* always zero, use somNewClassReference instead */
  221. #else
  222.     long zero;
  223. #endif
  224.     somStaticClassInfo *sci;
  225.     somDToken        instanceDataToken;
  226.     long reserved [3];
  227.     somMToken InitObject;
  228.     somMToken HasExtension;
  229.     somMToken AcquireExtension;
  230.     somMToken ReleaseExtension;
  231.     somMToken Purge;
  232.     somMToken IsEqualTo;
  233.     somMToken SubClassResponsibility;
  234. } SOMDLINK ODObjectClassData;
  235.  
  236. #if PRAGMA_ALIGN_SUPPORTED
  237. #  pragma options align=reset
  238. #endif
  239.  
  240. #if !defined(ODObject_Class_Source) && !defined(SOM_Module_odobject_Source)
  241. #if PRAGMA_IMPORT_SUPPORTED
  242. #pragma import list ODObjectClassData
  243. #endif
  244. #endif
  245.  
  246.  
  247. /*
  248.  * -- Typedefs and inline method declarations for left path inherited methods
  249.  * -- are omitted because this compilation had -museinheritedmethods in effect
  250.  */
  251.  
  252.  
  253. /*
  254.  * -- Typedefs for ODObject Method Procedures
  255.  */
  256. SOMEXTERN {
  257. typedef void   (* SOMLINK somTD_ODObject_InitObject)(ODObject *somSelf, Environment *ev);
  258. typedef ODBoolean   (* SOMLINK somTD_ODObject_HasExtension)(ODObject *somSelf, Environment *ev,
  259.         ODType extensionName);
  260. typedef ODExtension*   (* SOMLINK somTD_ODObject_AcquireExtension)(ODObject *somSelf, Environment *ev,
  261.         ODType extensionName);
  262. typedef void   (* SOMLINK somTD_ODObject_ReleaseExtension)(ODObject *somSelf, Environment *ev,
  263.         ODExtension* extension);
  264. typedef ODSize   (* SOMLINK somTD_ODObject_Purge)(ODObject *somSelf, Environment *ev,
  265.         ODSize size);
  266. typedef ODBoolean   (* SOMLINK somTD_ODObject_IsEqualTo)(ODObject *somSelf, Environment *ev,
  267.         ODObject* object);
  268. typedef void   (* SOMLINK somTD_ODObject_SubClassResponsibility)(ODObject *somSelf, Environment *ev);
  269.  
  270. typedef M_ODObject*   (* SOMLINK somTD_ODObject_somGetClass)(ODObject *somSelf);
  271. }
  272.  
  273. #endif /* ODObject_API */
  274.  
  275.  
  276. /*
  277.  * -- This emitter treats Method Tokens as Thunks by default.
  278.  * -- Use the sc modifier "nothunks" to change this default
  279.  */
  280. #undef somresolve_
  281. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  282.  
  283. /*
  284.  * -- The C++ Wrapper Class for ODObject
  285.  */
  286. class ODObject : public SOMObject
  287. {
  288. public:
  289.  
  290. // ODObject::new registers use of the class object, and then uses somNew
  291. // to allocate memory and load the object method table pointer. 
  292. void *operator new(size_t size)
  293. {
  294.     SOM_IgnoreWarning(size);
  295.     // Allocate memory using the default allocator for ODObject, and
  296.     // clear mem & set method table pointer, call basic initialization
  297. #ifdef SOMCHKNULL
  298.     void * __somResult = (void *)
  299.       somNewObject(ODObject);
  300.     SOMCHKNULL(__somResult);
  301.     return __somResult;
  302. #else
  303.     return (void*) somNewObject(ODObject);
  304. #endif
  305. }
  306.  
  307. // ODObject::delete uses the default deallocator for the object's class.
  308. void operator delete(void * obj)
  309. {
  310.     if (obj) {
  311.         SOM_Resolve(obj,SOMObject,somFree)
  312.            ( (SOMObject*) obj );
  313.     }
  314. }
  315.  
  316. /* method: InitObject */
  317. void   InitObject(Environment *ev)
  318. {
  319.    SOM_ResolveD(this,ODObject,ODObject,InitObject)
  320.     (this,ev);
  321. #ifdef SOMCHKEXCEPT
  322.       SOMCHKEXCEPT;
  323. #endif
  324. }
  325.  
  326. /* method: HasExtension */
  327. ODBoolean   HasExtension(Environment *ev,
  328.         ODType extensionName)
  329. {
  330.    #ifdef SOMCHKEXCEPT
  331.    ODBoolean __somResult = 
  332.       SOM_ResolveD(this,ODObject,ODObject,HasExtension)
  333.     (this,ev,extensionName);
  334.       SOMCHKEXCEPT;
  335.    return __somResult;
  336. #else
  337.    return SOM_ResolveD(this,ODObject,ODObject,HasExtension)
  338.     (this,ev,extensionName);
  339. #endif
  340. }
  341.  
  342. /* method: AcquireExtension */
  343. ODExtension*   AcquireExtension(Environment *ev,
  344.         ODType extensionName)
  345. {
  346.    #ifdef SOMCHKEXCEPT
  347.    ODExtension* __somResult = 
  348.       SOM_ResolveD(this,ODObject,ODObject,AcquireExtension)
  349.     (this,ev,extensionName);
  350.       SOMCHKEXCEPT;
  351.    return __somResult;
  352. #else
  353.    return SOM_ResolveD(this,ODObject,ODObject,AcquireExtension)
  354.     (this,ev,extensionName);
  355. #endif
  356. }
  357.  
  358. /* method: ReleaseExtension */
  359. void   ReleaseExtension(Environment *ev,
  360.         ODExtension* extension)
  361. {
  362.    SOM_ResolveD(this,ODObject,ODObject,ReleaseExtension)
  363.     (this,ev,extension);
  364. #ifdef SOMCHKEXCEPT
  365.       SOMCHKEXCEPT;
  366. #endif
  367. }
  368.  
  369. /* method: Purge */
  370. ODSize   Purge(Environment *ev,
  371.         ODSize size)
  372. {
  373.    #ifdef SOMCHKEXCEPT
  374.    ODSize __somResult = 
  375.       SOM_ResolveD(this,ODObject,ODObject,Purge)
  376.     (this,ev,size);
  377.       SOMCHKEXCEPT;
  378.    return __somResult;
  379. #else
  380.    return SOM_ResolveD(this,ODObject,ODObject,Purge)
  381.     (this,ev,size);
  382. #endif
  383. }
  384.  
  385. /* method: IsEqualTo */
  386. ODBoolean   IsEqualTo(Environment *ev,
  387.         ODObject* object)
  388. {
  389.    #ifdef SOMCHKEXCEPT
  390.    ODBoolean __somResult = 
  391.       SOM_ResolveD(this,ODObject,ODObject,IsEqualTo)
  392.     (this,ev,object);
  393.       SOMCHKEXCEPT;
  394.    return __somResult;
  395. #else
  396.    return SOM_ResolveD(this,ODObject,ODObject,IsEqualTo)
  397.     (this,ev,object);
  398. #endif
  399. }
  400.  
  401. /* method: SubClassResponsibility */
  402. void   SubClassResponsibility(Environment *ev)
  403. {
  404.    SOM_ResolveD(this,ODObject,ODObject,SubClassResponsibility)
  405.     (this,ev);
  406. #ifdef SOMCHKEXCEPT
  407.       SOMCHKEXCEPT;
  408. #endif
  409. }
  410.  
  411.  
  412. /* method: somGetClass */
  413. M_ODObject*  somGetClass()
  414. {
  415.    return SOM_ResolveD(this,ODObject,SOMObject,somGetClass)
  416.     (this);
  417. }
  418.  
  419. };   /* ODObject */
  420.  
  421.  
  422.  
  423. #endif       /* SOM_ODObject_xh */
  424.